package com.dpteam.dao;

import com.dpteam.bean.CountPie;
import com.dpteam.model.OrderItem;
import com.dpteam.util.Page;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: luolei
 * Date: 2016/1/7
 * Time: 16:48
 */
public interface OrderItemDao extends BaseDao<OrderItem> {

    /**
     * 按照商品类型(分页)
     */
    List<OrderItem> findByCategoryIdPage(Integer categoryId,Page page);

    /**
     * 按照商品类型
     */
    List<OrderItem> findByCategoryId(Integer categoryId);

    /**
     * 按照提供商查询(分页)
     */
    List<OrderItem> findByProviderIdPage(Integer providerId,Page page);

    /**
     * 按照提供商
     */
    List<OrderItem> findByProviderId(Integer providerId);

    /**
     * 查询商品销售情况
     * @param whe  group by whe ;按照 某一字段 分组 whe可为："productNum","grossProfit","retainedProfit"
     * @param top 查询数量
     * @return
     */
    List<OrderItem> findByDesTop(String whe,int top);

    /**
     * 按照商品Id查询
     */
    List<OrderItem> findByproductId(Integer productId);


    /**
     * 批量插入
     */
    List<OrderItem>  batchInsert(List<OrderItem> orderItemList);

    /**
     * 指定年份，分类 商品的总利润
     * @param year
     * @param categoryId
     * @return
     */
    double sumProfit(int year, int categoryId);

    /**
     * 统计指定年份，指定月份，指定商品分类总利润
     * @param year
     * @param month
     * @param categoryId
     * @return
     */
    double sumProfit(int year, int month, int categoryId);

    /**
     * 统计指定年份，指定商品分类 营业额
     * @param year
     * @param categoryId
     * @return
     */
    double sumSell(int year, int categoryId);

    /**
     * 统计指定年份，指定月份，指定商品分类 营业额
     * @param year
     * @param month
     * @param categoryId
     * @return
     */
    double sumSell(int year, int month, int categoryId);

    List<CountPie> countProfit(int year);

    List<CountPie> countProfit(int year, int month);

    List<CountPie> countSell(int year);

    List<CountPie> countSell(int year, int month);

}
